"""
所有情况都用if...elif..elif判断,遇到三点收敛返回结果

while L <= R: 尽量在while内返回结果
note: 重点重点:当L<=R,需要将长度为1 单独考虑, 一般是因为返回为结果哦, 或者做一些比不可缺的操作

对于offer53-2并不是在l==r时返回,所以不用在while中考虑返回,我们要得是越界返回

模板
    L, R = 0, len(nums) -1

    while L <= R:
        mid = (L + R) // 2

        # 考虑长度为1,且会出现返回值, 或者例如最长上升子序列中替换操作
        if L==R:
            操作,记得此时要返回或者break

        if 条件1:
            搜索区间
        elif 条件2:
            搜索区间
        elif 条件3:
            搜索区间

    搜索结果可能不存在时候, 在while外面需要一个返回, 这一步根据情况决定

while L < R: 尽量在while外返回结果




34 类似offer53-2, 53-1 都是要越界值的
"""